/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package src.com.dados.matricula;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import src.com.dados.pedagogico.AlunoDao;
import src.com.dados.pedagogico.TurmaDao;

/**
 *
 * @author Giane
 */
public class MatriculaDao {

    public void inserePagamento(String vencimento, String id_turma, String id_aluno, String valor, String forma, String parcelas) throws SQLException {
        int num = new Integer(parcelas);
        double v = new Double(valor);

        double valor2 = v / num;

        for (int i = 0; i < num; i++) {
            Connection conexao;
            String inserir_nivel = "INSERT INTO `bdeng2`.`pgm_pagamento_mensalidade` (`pgm_dt_pagamento`, `pgm_dt_vencimento`, `mat_matricula_tur_turma_tur_id`, `mat_matricula_alu_aluno_alu_matricula`,`pgm_pagamento_num_parcela`,`pgm_valor_mensalidade`, `pgm_forma_pagamento`, `pgm_parcelas_pagamento`) VALUES ('', '"
                    + vencimento + "', '" + id_turma + "','" + id_aluno + "','" + (i + 1) + "','" + valor2 + "', '" + forma + "', '" + parcelas + "');";
            String url = "jdbc:mysql://localhost/bdeng2";
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            conexao = DriverManager.getConnection(url, "root", "dados");


            Statement stmt2 = (Statement) conexao.createStatement();
            stmt2.execute(inserir_nivel);
            conexao.close();
        }
    }

    public void MudarSituacao(String nm_aluno, String turma, int numLinhas) throws SQLException {
        Connection conexao;
        String result = null;
        AlunoDao alu = new AlunoDao();
        String all = alu.id_aluno(nm_aluno);
        TurmaDao tur = new TurmaDao();
        String turm = tur.id_turma(turma);
        String id = id_mensalidade(nm_aluno);
        for (int i = 0; i < numLinhas; i++) {

            String select_idAluno = "UPDATE `bdeng2`.`pgm_pagamento_mensalidade` SET `pgm_pagamento_situação`='2' WHERE `pgm_id`=" + id + " and`mat_matricula_tur_turma_tur_id`=" + turm + " and pgm_pagamento_situação = 1 and `mat_matricula_alu_aluno_alu_matricula`='" + all + "';";



            //System.out.println("XXXXXXX"+select_idAluno);

            String url = "jdbc:mysql://localhost/bdeng2";
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            conexao = DriverManager.getConnection(url, "root", "dados");
            PreparedStatement stmt = conexao.prepareStatement(select_idAluno);

            //   System.out.println("ENTROU");
            // System.out.println("UPDATE: "+select_idAluno);
            stmt.execute();
            id = id_mensalidade(nm_aluno);
            //System.out.println("ID: "+id);




            conexao.close();
        }
        
    }

    public void MudarSituacao2(String nm_aluno, String turma, int numLinhas) throws SQLException {
        Connection conexao;
        String result = null;
        AlunoDao alu = new AlunoDao();
        String all = alu.id_aluno(nm_aluno);
        String id = id_mensalidade(nm_aluno);
        for (int i = 0; i < numLinhas; i++) {

            String select_idAluno = "UPDATE `bdeng2`.`pgm_pagamento_mensalidade` SET `pgm_pagamento_situação`='2' WHERE `pgm_id`=" + id + " and`mat_matricula_tur_turma_tur_id`=" + turma + " and pgm_pagamento_situação = 1 and `mat_matricula_alu_aluno_alu_matricula`='" + all + "';";



            System.out.println("XXXXXXX"+select_idAluno);

            String url = "jdbc:mysql://localhost/bdeng2";
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            conexao = DriverManager.getConnection(url, "root", "dados");
            PreparedStatement stmt = conexao.prepareStatement(select_idAluno);

            //   System.out.println("ENTROU");
            // System.out.println("UPDATE: "+select_idAluno);
            stmt.execute();
            id = id_mensalidade(nm_aluno);
            //System.out.println("ID: "+id);




            conexao.close();
        }
        
    }
    
    
    
    public String id_mensalidade(String nm_aluno) throws SQLException {
        Connection conexao;
        String result = null;
        AlunoDao alu = new AlunoDao();
        String all = alu.id_aluno(nm_aluno);


        String select_idAluno = "select min(pgm_id) from pgm_pagamento_mensalidade where mat_matricula_alu_aluno_alu_matricula = '" + all + "' and pgm_pagamento_situação = 1 having min(pgm_pagamento_num_parcela);";
        //System.out.println(select_idAluno);

        String url = "jdbc:mysql://localhost/bdeng2";
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        conexao = DriverManager.getConnection(url, "root", "dados");
        PreparedStatement stmt = conexao.prepareStatement(select_idAluno);
        ResultSet rs = stmt.executeQuery();

        while (rs.next()) {
            result = rs.getString(1);
        }

        conexao.close();

        return result;
    }

    public String verificaMatricula(String matricula) throws SQLException {
        String select_count = "select count(pgm_id) from pgm_pagamento_mensalidade where mat_matricula_alu_aluno_alu_matricula = '"+matricula+"';";
        System.out.println("VV: "+select_count);
        Connection conexao;
        String result = "0";


        String url = "jdbc:mysql://localhost/bdeng2";
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        conexao = DriverManager.getConnection(url, "root", "dados");
        PreparedStatement stmt = conexao.prepareStatement(select_count);
        ResultSet rs = stmt.executeQuery();


        while (rs.next()) {
            result = rs.getString(1);
        }


        conexao.close();
        return result;
    }

    public void matricular(String id_turma, String matricula, String parcelas,String idioma ,String id_nivel) throws SQLException {
            Connection conexao;
            String inserir_nivel = "INSERT INTO `bdeng2`.`mat_matricula` (`tur_turma_tur_id`, `alu_aluno_alu_matricula`, `mat_parcelas_pagas`, `mat_idioma_id`, `mat_id_nivel`) VALUES ('"+id_turma+"', '"+matricula+"', '"+parcelas+"', '"+idioma+"', '"+id_nivel+"');";
            System.out.println("MATRICULAR: "+inserir_nivel);
            String url = "jdbc:mysql://localhost/bdeng2";
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            conexao = DriverManager.getConnection(url, "root", "dados");


            Statement stmt2 = (Statement) conexao.createStatement();
            stmt2.execute(inserir_nivel);
            conexao.close();
    }

public ArrayList<String> listaMensalidade(String mtr_aluno) throws SQLException {
        String select_alunos = null;

        select_alunos = "SELECT pgm_pagamento_num_parcela,pgm_valor_mensalidade,sit_situação_descrição FROM bdeng2.pgm_pagamento_mensalidade , sit_situação_matricula where mat_matricula_alu_aluno_alu_matricula = '"+mtr_aluno+"' and  pgm_pagamento_situação = sit_situação_id;";
         // System.out.println("AQAQAQAQAQAQA"+ select_alunos);  

        System.out.println(select_alunos);

        Connection conexao;
        ArrayList<String> result = new ArrayList<String>();


        String url = "jdbc:mysql://localhost/bdeng2";
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        conexao = DriverManager.getConnection(url, "root", "dados");
        PreparedStatement stmt = conexao.prepareStatement(select_alunos);
        ResultSet rs = stmt.executeQuery();


        while (rs.next()) {
            for (int i = 1; i < 4; i++) {
                result.add(rs.getString(i));
            }
        }


        conexao.close();
        return result;
    }

}
